package edu.cgpi.core.util;

import java.awt.Graphics;

import edu.cgpi.core.entidade.Ponto;
import edu.cgpi.core.entidade.grafico.Imagem;

public class Desenhista {

	/**
	 * O Ponto origem representa o centro do plano cartesiano. Suas coordenadas
	 * consideram o plano cartesiano na forma usada nas telas de computador.
	 */
	private Ponto origem;

	public Desenhista() {
		origem = new Ponto(0.0, 0.0);
	}

	public Desenhista(Ponto origem) {
		this.origem = origem;
	}

	public Ponto getOrigem() {
		return origem;
	}

	public void setOrigem(Ponto origem) {
		this.origem = origem;
	}

	public void desenhar(Imagem imagem, Graphics g) {
		g.setColor(imagem.getCor().getCor());
		for (Ponto ponto : imagem.obterPontos()) {
			ajustar(ponto);
			g.drawOval(ponto.getX().intValue(), ponto.getY().intValue(), 1, 1);
		}
	}

	private void ajustar(Ponto ponto) {
		ponto.setX(origem.getX() + ponto.getX());
		ponto.setY(origem.getY() + ponto.getY());
	}
}